import Head from 'next/head';
import Link from 'next/link';
import { Typography, Link as MuiLink, Alert, AlertTitle } from '@mui/material';

<Head>
  <title>V1 Changelog and Roadmap - Material React Table V1 Docs</title>
  <meta
    name="description"
    content="Material React Table V1 Changelog and Roadmap for future development"
  />
</Head>

## Roadmap

### Version 1 Roadmap (2022-2023)

If you're still using MRT V1, please upgrade to V2 or V3 as soon as possible. MRT V1 is no longer maintained. Hundreds of bugs have been fixed!

<Alert sx={{ mt: '2rem' }} severity="warning" variant="outlined">
  <AlertTitle>
    MRT V2 was released October 27, 2023 and V3 was released September 2024
  </AlertTitle>
  <Typography>
    <Link href="https://v2.material-react-table.com/migrating-to-v2" passHref>
      <MuiLink target="_blank" rel="noopener">
        View the V2 migration docs here
      </MuiLink>
    </Link>
  </Typography>
  <Typography>
    <Link href="https://v3.material-react-table.com/migrating-to-v3" passHref>
      <MuiLink target="_blank" rel="noopener">
        View the V3 migration docs here
      </MuiLink>
    </Link>
  </Typography>
</Alert>

## Changelog

### Version 1

#### v1.15.1 (2023-10-15) - V2 Backported fixes

- Replaced `"Unsorted"` tooltip on header sort icon buttons with sort by next sort direction tooltip
- Fixed accessorFn being called during loading and other undefined data states during loading
- Fixed some button tooltips titles were not overridable
- Fixed virtualized nested column header groups to not crash
- Upgraded to latest TanStack Table `v8.10.7` various performance improvements and bug fixes
- Upgraded to latest TanStack Virtual `v3.0.0-beta.65` for various bug fixes

#### v1.15.0 (2023-09-25) - TanStack version bumps

- Upgraded to latest TanStack Table `v8.10.3` various performance improvements and bug fixes
- Upgraded to latest TanStack Virtual `v3.0.0-beta.60` for various bug fixes

#### v1.14.0 (2023-06-17) - The Custom Column Actions Update

- Added no translations that can be imported from `'material-react-table/locales/no'`
- Added new `internalColumnMenuItems` param in the `renderColumnActionsMenuItems` prop/column option for rendering custom column actions menu items
- Fixed `renderColumnActionsMenuItems` prop not replacing all default column actions menu items
- Fixed "Clear Filter" menu item not being disabled when no filter is applied for range filters
- Fixed issues with faceted values not being re-calculated when data changes in filter components

#### v1.13.1 (2023-06-15)

- Fixed issue with `getFacetedMinMaxValues` sometimes returning the wrong data type for the min/max values for range-slider filters

#### v1.13.0 (2023-06-14) - The Faceted Values Update

- Added new `'range-slider'` filter variant using the MUI `Slider` component
- Added the `enableFacetedValues` prop to allow for generating faceted values from the data under the hood
- Small performance improvements by only using certain row models under the hood when certain features are enabled (e.g. no `getSortedRowModel()` when sorting is disabled)

#### v1.12.1 (2023-06-12)

- Fixed new Next.js key prop warning in console
- Upgraded to latest TanStack Table v8.9.2

#### v1.12.0 (2023-05-29) - The Comply with Rollup Update

- Added `MaterialReactTable` as a named export and gave a deprecation warning for the default export (will still work but will be removed in v2). This was done in order to comply with rollup bundling best practices.

#### v1.11.5 (2023-05-25)

- Fixed potential internal const issues when `columnOrder` state was manually managed

#### v1.11.4 (2023-05-19)

- Fixed right column pinning spacing issues
- Implemented `enableSortingRemoval` in column actions menu
- Internal virtualization specific logic for Firefox vs Chrome
- Exported new `MRT_FilterFnsState` type
- Exported `MRT_TableHeadCellFilterContainer` component
- Added hu translations that can be imported from `'material-react-table/locales/hu'`

#### v1.11.3 (2023-05-07)

- Removed internal `measureElement` virtualizer option to prevent firefox from crashing with virtualization enabled
- Improved row virtualization performance by moving translateY to row style instead of sx to create less emotion css classes

#### v1.11.2 (2023-05-03)

- Upgrade to TanStack Table v8.9.1 for new `getGroupingValue` column option, and median aggregation function bug fix
- Added sk translations that can be imported from `'material-react-table/locales/sk'`

#### v1.11.1 (2023-04-30)

- update it and nl locales grammar
- tweaked how column actions "filter by" menu menu item behaves

#### v1.11.0 (2023-04-24) - The Less Ugly Column Actions Update

- Removed Column Actions Submenu for "Show all Columns" Menu Item (was complicated unnecessary UI)
- Disabled Column Actions Filter By Menu Item when columns are already visible
- Fixed column resizing causing extra horizontal scrollbar to appear when dense padding is enabled
- Fixed column header min-size being too big for columns with less than 5 characters
- Added id translations that can be imported from `'material-react-table/locales/id'`
- Added fi translations that can be imported from `'material-react-table/locales/fi'`

#### v1.10.0 (2023-04-16) - The Empty Data Message Update

- New highly requested `renderEmptyRowsFallback` prop for rendering custom JSX when there are no rows to display
- Added `staticRowIndex` param to `muiTableBodyRowProps` to make styling striped virtual rows easier
- Now allowing table head, body, and footer cell widths to be specified in `sx` prop when `enableColumnRisizing` is disabled. BUT YOU SHOULD STILL USE THE `size` COLUMN OPTION INSTEAD!
- Fixed issue with "Reset Order" button not always being accurate when position props === "last"
- Fixed issue with draggable columns with grouping disabled still being allowed to be dragged to dropzone.

#### v1.9.4 (2023-04-15)

- Fixed row actions and row menu actions async memo issues

#### v1.9.3 (2023-04-02)

- Upgraded to latest TanStack Table `v8.8.5` for new `getCanSomeRowsExpand` bugfix
- Fixed issue where page index could be out of bounds after the number of rows in the table decreases. Table now goes to the last page automatically when this happens.
- Fixed issue where global filter textbox would not initialize from external state properly
- Fixed typo in `onShowColumnFiltersChange` prop name (renamed from `onShowFiltersChanged`)

#### v1.9.2 (2023-03-26)

- Upgraded to latest TanStack Table `v8.8.4` for new `row.getParentRow` APIs and various select all bug fixes
- Upgraded to latest TanStack Virtual `v3.0.0-beta.54` for various bug fixes
- Fixed issues with filter match highlighting highlighting cells that had global filtering turned off
- Filter highlighting now uses `exactMatch` for non `"fuzzy"` filter modes

#### v1.9.1 (2023-03-21)

- gave hovered selected rows a better primary shade color
- fixed several logic bugs with filter mode switching

#### v1.9.0 (2023-03-20) - The Multi-Sort Badge Update

- added new multi-sort badge number to sort label
- added new Serbian locales
- improved textOverflow ellipsis
- fixed not empty and empty filters switch not re-rendering
- fixed sort arrow cutoff in non-left alignment
- fixed row action menu click propagation issue
- refactored row cell hover

#### v1.8.5 (2023-03-09)

- Used more comprehensive regex to create css vars for column resizing from column ids/accessorKeys
- Fixed more column resizing issues with nested column groups
- Added official css classNames for column resizing elements
- Added exports for `MRT_ExpandButton` and `MRT_GrabHandleButton` components
- Exported `MRT_Updater` type so it does not have to be imported from `@tanstack/react-table`
- zh locale row vs column translation tweaks

#### v1.8.4 (2023-03-02)

- Fixed column resizing issues with nested column groups

#### v1.8.3 (2023-02-27)

- Added back support for custom edit and filter textfield children

#### v1.8.2 (2023-02-26)

- Added `tableFeatures` prop for advanced tableInstance customization
- Flattened TS types for readability
- Fixed more issues with column filter modes onChange resetting column filters too often

#### v1.8.1 (2023-02-22)

- Fixed sorting button accessibility issue

#### v1.8.0 (2023-02-16) - The Edit Dropdowns Update

- Allow `enableEditing` prop and column options to be enabled conditionally per row `(row) => boolean`
- Added `editVariant` and `editSelectOptions` column options to make it easier to create edit dropdowns
- Added `enableFilterMatchHighlighting` as a column option to enable/disable filter match highlighting on a per column basis
- Fixed issue with column resizing vars when `"("` or `")"` are in accessor keys
- Fixed issue with column filter modes onChange resetting column filters too often
- Fixed issue with manually managed grouping state not auto-showing the built-in mrt-expand-row column
- Re-export all State types from TanStack Table so that they can be imported from `material-react-table` instead of `@tanstack/react-table`
- Re-export all Virtualizer types from TanStack Virtual so that they can be imported from `material-react-table` instead of `@tanstack/react-virtual`
- Export all MRT sortingFns, filterFns, and aggregationFns from 'material-react-table' so that they can be imported from `material-react-table` instead of `@tanstack/react-table`

#### v1.7.4 (2023-02-12)

- Upgrade to TanStack Virtual v3 beta 47
- Fixed issue with nested grouped columns and column re-ordering sizes
- Added new `PlaceholderCell` cell render override as a column option
- Touched up the cell resize handle styling
- Allow expand button props to override children for custom icons

#### v1.7.3 (2023-02-10)

- Fixed issue with column resizing css vars when `"+"` are in accessor keys

#### v1.7.2 (2023-02-09)

- Fixed issue with column resizing css vars when spaces are in accessor keys

#### v1.7.1 (2023-02-08)

- Fixed issue with column resizing css vars when using nested accessor keys with dot notation

#### v1.7.0 (2023-02-08) "The Column Resizing Update"

- Column Resizing performance improvements by switching to CSS vars for column widths and memoizing the table body during resizing by default
- `columnResizeMode` now defaults to `"onChange"` instead of `"onEnd"`
- Allow for column sizes to not grow if flex grow is disabled when layoutMode is `"grid"`
- Get rid of table row hover transition time for better UI.

#### v1.6.6 (2023-02-07)

- Added sv translations that can be imported from `'material-react-table/locales/sv'`

#### v1.6.5 (2023-02-04)

- Added uk translations that can be imported from `'material-react-table/locales/uk'`

#### v1.6.4 (2023-02-01)

- Fixed row dragging borders not showing in semantic layout mode

#### v1.6.3 (2023-02-01)

- Disabled ranked results when expanded sub rows are present

#### v1.6.2 (2023-01-30)

- Auto disable select checkboxes when row.getCanSelect() is false
- Upgrade to latest TanStack Table v8.7.9 for select all checkbox bug fix when row selection is conditionally enabled per row

#### v1.6.1 (2023-01-30)

- Fixed alert banner z-index issue

#### v1.6.0 (2023-01-29) "The Filter Match Highlighting Update"

- Added new Filter Match Highlighting feature that is enabled by default, but can be disabled with the `enableFilterMatchHighlighting` prop
- Added import for the `MRT_EditActionButtons` component for better custom row actions
- Cleaned up Toolbar DropZone styling

#### v1.5.12 (2023-01-27)

- Fixed issue with table body cell "center" and "right" alignment when layoutMode="grid" or virtualization is enabled

#### v1.5.11 (2023-01-27)

- Upgraded to latest TanStack Table v8.7.8 for various bug fixes relating to null values in data
- Added da translations that can be imported from `'material-react-table/locales/da'`

#### v1.5.10 (2023-01-23)

- Fixed small resize handle drift issue when resizing columns
- Adjust TableFooterRow background color to match TableHeadRow background color by default

#### v1.5.9 (2023-01-15)

- Added table border-collapse 'separate' to fix row borders not showing in Firefox

#### v1.5.8 (2023-01-12)

- Added imports for bottom and top toolbar components for custom toolbar rendering

#### v1.5.7 (2023-01-10)

- Fixed issue with memoized rows not sorting correctly with row virtualization enabled
- Fixed issue with exiting full screen causing virtualized rows to disappear

#### v1.5.6 (2023-01-10)

- Freeze TanStack Virtual version to beta 30

#### v1.5.5 (2023-01-10)

- Fixed global filtering with manual pagination when on page 2 or greater
- Upgrade to latest TanStack Table v8.7.6 for various bug fixes

#### v1.5.4 (2022-12-30)

- Fixed filter text field value not updating from external state change and fix filter clear icon button being disabled when value is not a string

#### v1.5.3 (2022-12-29)

- Fixed empty and not empty filter chip clearing defaulting back to only available filter modes

#### v1.5.2 (2022-12-24)

- Added new `showToolbarDropZone` state option to allow manual control of when the toolbar drop zone is visible

#### v1.5.1 (2022-12-23)

- Fixed sticky footer z-index issue when using column pinning
- Added zh-Hans and zh-Hant translations that can be imported from `'material-react-table/locales/zh-Hans'` and `'material-react-table/locales/zh-Hant'` respectively

#### v1.5.0 (2022-12-20) "The Column Virtualization Upgrade"

- New column virtualization feature that can be enabled with the `enableColumnVirtualization` prop and customized with the `columnVirtualizationProps` and `columnVirtualizerInstanceRef` props
- Deprecated (renamed) `virtualizerInstanceRef` prop in favor of `rowVirtualizerInstanceRef`
- Deprecated (renamed) `virtualizationProps` prop in favor of `rowVirtualizationProps`
- Fixed crashes with empty nested data and initial filter, sorting, grouping, and pagination states

#### v1.4.3 (2022-12-15)

- Fixed MUI debounce import when `@mui/material v5.11.0` is installed
- Fixed select placeholder when muiTableBodyCellEditTextFieldProps.placeholder is set

#### v1.4.2 (2022-12-11)

- Fixed custom `muiTableBodyProps.children` not being rendered
- Give TableBody a default minHeight of 100px when no rows are present

#### v1.4.1 (2022-12-11)

- Fixed row virtualization with detail panels to make it usable
- Added classNames to Detail Panel Rows and Cells to make them easier to target with CSS
- Lowered default row virtualization `overscan` default count from `10` to `4`
- Added imports for `MRT_ToolbarAlertBanner` and `MRT_ToolbarDropZone` components for custom toolbars

#### v1.4.0 (2022-12-08) "The Row Virtualization Upgrade"

- Upgrade to TanStack Virtual v3 for better virtualization performance and bug fixes - (small breaking changes if using advanced virtualized customization features)
- New `layoutMode` prop to allow for either `"semantic"` or `"grid"` (flex) CSS layouts for table components
- New `onEditingRowCancel` prop
- New "Collapse" tooltip for all locales on expand buttons when expanded
- Clicking filter icon in header now focuses filter textfield
- Added nl translations that can be imported from `'material-react-table/locales/nl'`
- Updated ru translations that can be imported from `'material-react-table/locales/ru'`

#### v1.3.15 (2022-11-24)

- Fixed some column hiding menu edge cases

#### v1.3.14 (2022-11-24)

- Added ro translations that can be imported from `'material-react-table/locales/ro'`

#### v1.3.13 (2022-11-23)

- Upgraded to latest TanStack Match Sorter Utils 8.7.0 for webpack compatibility fixes and better esm support

#### v1.3.12 (2022-11-23)

- Upgraded to latest TanStack Table 8.7.0 for webpack compatibility fixes and better esm support

#### v1.3.11 (2022-11-23)

- Added vi translations that can be imported from `'material-react-table/locales/vi'`
- Upgraded to latest TanStack Table 8.6.0 for new `maxLeafRowFilterDepth` prop

#### v1.3.10 (2022-11-19)

- Added fr translations that can be imported from `'material-react-table/locales/fr'`
- Upgraded to latest TanStack Table 8.5.30 for better TypeScript performance

#### v1.3.9 (2022-11-14)

- Upgraded to latest TanStack Table 8.5.27 for better sorting in grouped rows

#### v1.3.8 (2022-11-13)

- Fixed filter textfield calling clear method on mount which sometimes caused additional data fetches

#### v1.3.7 (2022-11-12)

- Upgraded to latest TanStack Table 8.5.24 to fix `filterFromLeafRows` bug

#### v1.3.6 (2022-11-10)

- Fixed getRowId prop type

#### v1.3.5 (2022-11-10)

- Added tr translations that can be imported from `'material-react-table/locales/tr'`

#### v1.3.4 (2022-11-07)

- Emergency fix remove fa as default translations

#### v1.3.3 (2022-11-06)

- Added fa translations that can be imported from `'material-react-table/locales/fa'`

#### v1.3.2 (2022-10-30)

- Upgraded to latest TanStack Table v8.5.22 for massive grouping performance improvements

#### v1.3.1 (2022-10-29)

- small optional chaining fix for custom textfileds
- it locale fix
- Upgraded to latest TanStack Table v8.5.21

#### v1.3.0 (2022-10-28) "The Multi-Aggregation Update"

- Added Multi-Aggregation Per Column Feature
- renamed `onFilterFnsChange` to `onColumnFilterFnsChange` **(breaking change)**
- fixed grouped rows should not show edit text fields when in `"table"` editing mode
- Upgraded to latest TanStack Table v8.5.18

#### v1.2.10 (2022-10-17)

- Added it translations that can be imported from `'material-react-table/locales/it'`

#### v1.2.9 (2022-10-11)

- Allow Sort Icon (ArrowDownward) to be replaced with custom icon

#### v1.2.8 (2022-10-11)

- Fixed some minor spacing issues in Table Head Cell icon buttons

#### v1.2.7 (2022-10-05)

- Fixed select and expand column headers sometimes not showing correctly

#### v1.2.6 (2022-10-03)

- Un-memoized `localization` prop internally to allow for dynamic localization updates
- Made Columns Actions Button slightly smaller

#### v1.2.5 (2022-09-30)

- Fixed: `globalFilterFn` prop had wrong type

#### v1.2.4 (2022-09-30)

- Fixed: All Mui imports use default exports to reduce number of modules in dev mode

#### v1.2.3 (2022-09-30)

- Fixed: Icon imports use default exports to reduce number of modules in dev mode

#### v1.2.2 (2022-09-29)

- Disable more display columns and detail panel stuff while `isLoading` is true
- Fixed overflow issues with expand all button and select all checkbox

#### v1.2.1 (2022-09-29)

- Disable detail panel render while `isLoading` is true

#### v1.2.0 (2022-09-27) "The Header Cell Update"

- New Header default ellipsis behavior when column width is smaller than header string
- Column Actions and Column Grab Handles now left-align by default
- Column Alignment Improvements when align is `'center'` or `'right'`

#### v1.1.1 (2022-09-23)

- footer z-index fix during fullscreen mode
- bigger resize handle accessibility

#### v1.1.0 (2022-09-20) "The Memo Update"

- New memoMode prop to enable memoizing cells, rows, or the entire table body
- Radio Buttons now show instead of checkboxes when enableMultiRowSelection={false}
- Fixed dragging column bottom-border sometimes showing on wrong row
- Various Render Performance Improvements

#### v1.0.11 (2022-09-17)

- Fixed Sticky Header with pinned columns in full screen mode

#### v1.0.10 (2022-09-17)

- Added ru translations that can be imported from `'material-react-table/locales/ru'`

#### v1.0.9 (2022-09-17)

- Added de translations that can be imported from `'material-react-table/locales/de'`

#### v1.0.8 (2022-09-16)

- Update es translations

#### v1.0.7 (2022-09-15)

- Remove unnecessary memo that was causing issues with aggregated cells not updating

#### v1.0.6 (2022-09-15)

- Fixed Actions Column sometimes forced to be first column

#### v1.0.5 (2022-09-15)

- Fixed Mixed Header Groups levels not created with correct column order state

#### v1.0.4 (2022-09-14)

- Added cs translations that can be imported from `'material-react-table/locales/cs'`

#### v1.0.3 (2022-09-14)

- Fixed sticky header z-index issue with select checkboxes and expand buttons
- Added pl translations that can be imported from `'material-react-table/locales/pl'`

#### v1.0.2 (2022-09-13)

- Added es translations that can be imported from `'material-react-table/locales/es'`

#### v1.0.1 (2022-09-13) "The OG Release"

- Initial Stable Release

### Pre 1.0 breaking changes

- v1.0.0-beta.16 - `selectAllMode` default value changed to `"page"`
- v1.0.0-beta.6 - `onColumnDrop` and `onRowDrop` props removed, since they can easily be hooked up manually in `muiTableBodyRowCellDragHandleProps`
- v0.41.0 - Filter start icon will no longer be shown if `enableColumnFilterModes` is not enabled
- v0.40.7 - `enabledGlobalFilterOptions` renamed to `globalFilterModeOptions`
- v0.40.2 - new `tableInstanceRef` and `virtualizerInstanceRef` props
- v0.39.0 - Renamed `enableColumnFilterChangeMode` to `enableColumnFilterModes`, renamed `enableGlobalFilterChangeMode` to `enableGlobalFilterModes`. New `renderColumnFilterModeMenuItems` and `renderGlobalFilterModeMenuItems` props.
- v0.38.3 - New `enableStickyFooter` prop useful for aggregation features
- v0.38.0 - New `GroupedColumn` cell render column def option, new `muiToolbarAlertBannerChipProps`, renamed `muiTableToolbarAlertBannerProps` to `muiToolbarAlertBannerProps`, `muiTableTopToolbarProps` to `muiTopToolbarProps`, `muiTableBottomToolbarProps` to `muiBottomToolbarProps`
- v0.37.2 - Aggregation cell renders enabled, `AggregatedCell` needed to render aggregated cell.
- v0.37.0 - Major Editing Feature Changes: `"modal"` is now the default `editingMode`. New required `exitEditingMode` param in `onEditingRowSave` to allow dev to exit editing mode only after validation passes. Fixed auto-filled values not saving in editing row submit. `tableId` prop removed as it is now unnecessary and was being confused with an html id attribute. Major internal ref refactors to better follow React best practices and improve performance.
- v0.36.0 - `onCellEditBlur` and `onCellEditChange` props removed because the already exist on `muiTableBodyCellEditTextFieldProps`. Examples given [here](/docs/guides/editing)
- v0.35.2 - Change `onEditRowSubmit` name to `onEditingRowSave`
- v0.35.1 - "current" prefix in some state options removed from name (i.e. `currentEditingRow` is now just `editingRow`), new editing value(s) arguments, better types for editing features
- v0.34.0 - rolled back to react-virtual 2.0 to fix flickering issue, MRT_Internal Toolbar components are now exported from MRT instead of in params
- v0.33.0 - `onTableInstanceChange` removed, `onStateChange` removed, `currentFilterFns` renamed to `columnFilterFns`, custom `filterFns` can be used again, renamed `ToolbarBottom` to `BottomToolbar` and `ToolbarTop` to `TopToolbar`
- v0.31.0 - new DropZone component in toolbar for grouping while dragging a column that can be grouped
- v0.29.0 - new `filterVariant` option on columnDef to indicate if filter is a select filter, multi-select filter, text filter, etc.
- v0.28.0 - `virtualizerProps` has slightly differently named options, as MRT upgraded to `@tanstack/react-virtual` `v3`.
- v0.27.0 - `enableColumnFilterModes` is now false by default, but can be turned on easily by just setting it to true.
- v0.23.0 - TanStack Table v8.2 has new `cell.getValue<>()` generics
- v0.22.1 - `showColumnFilters` state renamed to `showColumnFilters`
- v0.22.0 - React DnD replaced with custom solution for drag and drop. Now lib is 16kb smaller!
- V0.19.0 - Data Column Definitions now need an `accessorKey` or a combination of an `id` and `accessorFn` to be used as the key for the data row.
- V0.19.0 - `instance` was renamed to `table` across all callback functions to be inline with TanStack Table V8.1.
- V0.18.0 - on...Changed callback props were removed as they were redundant with the on...Change callback props. Hoisting state will be the recommended way to watch for table state changes and react to them.

<br />
<br />
<hr />
<br />
<br />

If you are interested in following along the development of any of these features, be sure to join the [Discord](https://discord.gg/5wqyRx6fnm)
